// 物品类型转换函数
export function convertItemType(itemType) {
  // 根据后端返回的itemType转换为前端需要的类型
  switch(itemType) {
    case 1: return 'pet'    // 精灵
    case 2: return 'item'   // 道具
    case 3: return 'fashion' // 时装
    default: return 'other' // 其他类型
  }
}

// 获取物品图片的函数 - 使用实际项目中的图片URL格式，增加兼容性
export function getItemImage(item) {
  if (item.itemId > 400 || !item) {
    return `https://robohash.org/${item.itemId}.png`;
  }
  return item.itemType === 1 ? `http://61.160.213.191:12346/pet/${item.itemId}.jpg` : `https://robohash.org/${item.itemId}.png`;
}


// 获取性格名称
export function getNatureName(natureId) {
  const natureMap = {
    "0": "孤独", "1": "固执", "2": "调皮", "3": "勇敢", 
    "4": "大胆", "5": "顽皮", "6": "无虑", "7": "悠闲", 
    "8": "保守", "9": "稳重", "10": "马虎", "11": "冷静",
    "12": "沉着", "13": "温顺", "14": "慎重", "15": "狂妄",
    "16": "胆小", "17": "急躁", "18": "开朗", "19": "天真",
    "20": "害羞", "21": "实干", "22": "坦率", "23": "浮躁",
    "24": "认真"
  };
  
  // 为空或未定义时返回默认值
  if (natureId === null || natureId === undefined) return "未知";
  
  // 处理不同类型的输入
  let natureKey = String(natureId);
  
  return natureMap[natureKey] || "未知";
}

// 获取特性名称
export function getSpecialAbility(specialId) {
  const specialMap = {
    "-1": "无特性",
    "1006": "叶绿", "1007": "流水", "1008": "炎火", "1009": "飞空",
    "1010": "蓄电", "1011": "机能", "1012": "碎裂", "1013": "平衡",
    "1014": "冰霜", "1015": "魔幻", "1016": "战意", "1017": "光环",
    "1018": "黑夜", "1019": "奇异", "1020": "威严", "1021": "圣灵",
    "1022": "精准", "1023": "会心", "1024": "坚硬", "1025": "回避",
    "1026": "顽强", "1027": "瞬杀", "1028": "回神", "1029": "带电",
    "1030": "中毒", "1031": "高热", "1032": "冰冷", "1033": "阴森",
    "1034": "睡眠", "1035": "反抗", "1036": "反驳", "1037": "忽略",
    "1038": "草率", "1040": "慌张", "1041": "反击", "1042": "抵抗",
    "1043": "反攻", "1044": "坚韧", "1045": "借风"
  };
  
  // 为空或未定义时返回默认值
  if (specialId === null || specialId === undefined) return "未知特性";
  
  // 处理不同类型的输入
  let specialKey = String(specialId);
  
  return specialMap[specialKey] || "未知特性";
}

/**
 * 格式化价格，超过10000显示为w单位，不进行四舍五入
 * @param {number} price - 原始价格
 * @param {boolean} showSymbol - 是否显示XIN豆符号
 * @returns {string} 格式化后的价格
 */
export function formatPrice(price, showSymbol = false) {
  if (!price && price !== 0) return '-';
  
  const numPrice = Number(price);
  
  if (numPrice >= 10000) {
    // 价格大于等于1万，转换为w单位
    const rawWPrice = numPrice / 10000;
    
    // 直接使用字符串模板和toFixed()而不执行四舍五入
    // 使用Math.floor()和除法保留1位小数，避免四舍五入
    // const wPrice = Math.floor(rawWPrice * 10) / 10;
    
    // 转换为字符串
    let wPriceStr = rawWPrice.toString();
    
    // 如果小数点后为0，则去掉小数点后的部分
    // const formattedWPrice = wPriceStr.endsWith('.0') ? wPriceStr.slice(0, -2) : wPriceStr;
    
    return showSymbol==true ? `${wPriceStr}w XIN豆` : `${wPriceStr}w`;
  }
  
  // 价格小于1万，保持原样
  return showSymbol==true ? `${numPrice} XIN豆` : `${numPrice}`;
}